SFI: A Refinement Based Layered Software Architecture

نویسنده

  • Ralph-Johan Back
چکیده

Refinement calculus [1,5] is a formal framework for reasoning about program correctness and correctness preserving program refinements. It serves as the foundation for an object-oriented software architecture and construction method that we refer to as stepwise feature introduction (SFI) [3]. Characteristic for this approach is that each software module is described in terms of thin layers. Each layer extends the software with some new feature, in a way that preserves the features that have been introduced by earlier layers. This amounts to requiring that the new layer is a superposition refinement [4] of the layers below. The modules are interconnected using interface specifications, usually providing a more abstract view of the module state than what will actually be implemented. The implementation is required to be a data refinement [9,6] of the interface specification. SFI is based on structuring software with these two basic mechanisms, modularization and extension, while the refinement calculus provides the formal framework for reasoning about the correctness of software constructed in this way. We use UML [8] to describe the software architecture, with refinement calculus providing a rigorous mathematical semantics for the UML constructs employed. This will also give us a formal framework for reasoning about UML class diagrams, in essence using these as proof schemes when arguing about software properties. SFI goes well in hand with an extreme programming (XP) [7] approach to constructing software, with feature introductions corresponding to the iteration cycles in XP. We can look at SFI as providing a general software architecture for XP, and we can look at XP as providing a software process for SFI. We will report on some experiments where these two approaches have been combined [2]. We will also discuss in more detail how the notions of unit tests in XP can be generalized to requirement specifications in SFI.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Ralph-Johan Back Incremental Software Construction with Refinement Diagrams

We propose here a mathematical framework for incremental software construction and controlled software evolution. The framework allows incremental changes of a software system to be described on a high architecture level, but still with mathematical precision so that we can reason about the correctness of the changes. The framework introduces refinement diagrams as a visual way of presenting th...

متن کامل

Aspect Refinement and Bounded Quantification in Incremental Designs

This article investigates aspects in the context of the incremental software development, i.e. software product lines. Specifically, we propose the integration of aspects into AHEAD, an architectural model for feature-based product line development. We introduce the notion of aspect refinement based on Aspectual Mixin Layers, a novel technique for implementing features. Aspect refinement enable...

متن کامل

Aspect Refinement in Software Product Lines

This article investigates aspects in the context of the step-wise development of software product lines. Specifically, we propose the integration of aspects into AHEAD, an architectural model for feature-based product line development. We introduce the notion of aspect refinement based on Aspectual Mixin Layers, a technique for implementing features. Aspect refinement enables a programmer to ev...

متن کامل

Diffraction Patterns of Layered Close-packed Structures from Hidden Markov Models

SFI Working Papers contain accounts of scienti5ic work of the author(s) and do not necessarily represent the views of the Santa Fe Institute. We accept papers intended for publication in peer-­‐reviewed journals or proceedings volumes, but not papers that have already appeared in print. Except for papers by our external faculty, papers must be based on work done at SFI, inspired by an invited v...

متن کامل

Experience on Using Stepwise Feature Introduction in Software Construction

Stepwise Feature Introduction is an incremental method and software architecture for building object-oriented system in thin layers of functionality, and is based on the Refinement Calculus logical framework. We have evaluated this method in a series of real software projects. The method works quite well on small to medium sized software projects, and provides a nice fit with agile software pro...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2002